home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / misc / update / tpasc302.cpt / ThP 3.0.2_TCL Disk Update < prev   
Encoding:
Text File  |  1991-04-08  |  8.3 KB  |  259 lines

  1. THINK PASCAL 3.0.2/TCL ONLINE UPDATE PACKAGE
  2. ============================================
  3. 4/4/91
  4.  
  5. INTRODUCTION
  6. ============
  7. This update package corrects some bugs in THINK Pascal 3.0 and some
  8. minor bugs in the Pascal version of the THINK Class Library.
  9.  
  10. It also allows THINK Pascal to be 90% compatible with System 7.0.
  11.     NOTE:    THINK Pascal 3.0.2 will NOT run under
  12.             Virtual Memory or in 32-bit mode.
  13.             
  14.  
  15. WHAT╒S IN THE UPDATE PACKAGE
  16. ============================
  17. This update package contains an applications that updates your existing
  18. THINK Pascal 3.0 to THINK Pascal 3.0.2 and a folder that contains files
  19. to update the THINK Class Library.
  20.  
  21.     Ñ    All THINK Pascal 3.0 users should update to
  22.         THINK Pascal 3.0.2.
  23.  
  24.     Ñ    All THINK Pascal 3.0 users who use the
  25.         THINK Class Library should apply the TCL Update.
  26.  
  27. The sections that follow tell you how to update THINK Pascal and the
  28. THINK Class Library and what bugs the updates fix.
  29.  
  30.  
  31. THINK PASCAL 3.0.2 UPDATE
  32. =========================
  33. This update transforms your existing THINK Pascal 3.0 application
  34. to THINK Pascal 3.0.2.
  35.  
  36. Installing the Update
  37. ---------------------
  38.     0.    Make sure that you have your original THINK Pascal
  39.         application. You won't need it for this update, but you 
  40.         should make sure that you have a backup in case the update
  41.         fails.
  42.                 
  43.     1.    Double-click on the patch program THINK Pascal -> 3.0.2 to
  44.         launch it. Click on the Update THINK Pascal button to continue.
  45.  
  46.     2.    Find your existing copy of THINK Pascal in your THINK Pascal
  47.         Folder. Select it and click on the Patch button.
  48.         
  49.         If you use a virus intercept program, such as SAM, it may warn 
  50.         you that THINK Pascal -> 3.0.2 is modifying code resources. 
  51.         Allow these changes.
  52.         
  53.  
  54. What This Update Changes
  55. ------------------------
  56. These are the bugs fixed in version 3.0.2:
  57.  
  58.   Ñ  THINK Pascal 3.0.2 is 90% compatible with System 7.0. It will not
  59.        work under Virtual Memory or in 32-bit mode.
  60.  
  61.     Ñ    On the Mac IIci, VBL tasks that were installed with _SlotVInstall
  62.         were not properly dequeued when the program was paused, which resulted
  63.         in a crash.
  64.         
  65.     Ñ    When printing on an AppleTalk ImageWriter, or on a similar shared
  66.         printer (except the LaserWriter and compatibles), cancelling a 
  67.         print job in progress only cancelled the current page.
  68.         This also fixes the problem with pages from different print jobs
  69.         getting interleaved with one another.
  70.         
  71.     Ñ    Under some conditions, Font Manager width tables would be allocated 
  72.         in the THINK Pascal application heap, but their master pointers would
  73.         be in the system heap. This tends to confuse the Memory Manager.
  74.  
  75.     Ñ    The THINK Pascal environment should now run correctly under
  76.         System 7.0 in 24-bit mode, without Apple virtual memory.
  77.     
  78.     Ñ    Under System 7.0, calling the _InvalMenuBar trap (most notably done in
  79.         MacApp) would bring the machine to its knees.
  80.         
  81.     Ñ    When running under System 7.0, THINK Pascal would give a stream of
  82.         "Macintosh System Error -35: No Such Volume" error messages when 
  83.         closing a project document.
  84.         
  85. The changes from version 3.0 to 3.0.1 are:
  86.         
  87.     Ñ    If a PACKED ARRAY OF Boolean had a lower bound which was not
  88.         modulo 8, the wrong bit in the array would be stored and fetched.
  89.         For example:
  90.         
  91.         VAR
  92.             bits : PACKED ARRAY [0..15] OF Boolean;
  93.             
  94.         worked OK, whereas
  95.         
  96.         VAR
  97.             bits : PACKED ARRAY [1..16] OF Boolean;
  98.             
  99.         did not.
  100.         
  101.     Ñ    An attempt to store a non-immediate value to an element of a 
  102.         PACKED ARRAY OF Boolean would result in a bit being changed
  103.         in random memory if the value was FALSE:
  104.         
  105.         bits[4] := TRUE;        {    worked    }
  106.         bits[4] := FALSE;        {    worked    }
  107.         bits[4] := bool;        {    worked if bool was TRUE, failed }
  108.                                 {    if bool was FALSE.              }
  109.                                     
  110.     Ñ    Attempting to use an element of a PACKED ARRAY OF Boolean as an
  111.         argument to one of the intrinsic bit-manipulation functions 
  112.         (BAND, BOR, etc) crashed the compiler. This happened most often
  113.         in code ported from THINK Pascal 2.0 which dealt with variables
  114.         of type KeyMap. KeyMaps were previously arrays of four LongInts,
  115.         so it was necessary to BAND an element of a KeyMap with a mask
  116.         value to test the desired bit.
  117.         
  118.             ÑÑ    IMPORTANT
  119.                 Although the compiler will no longer crash, the result
  120.                 from BAND(myKeyMap[n], m) will NOT be the result  
  121.                 you're looking for. You should just perform a Boolean  
  122.                 test on the required element of the KeyMap.
  123.         
  124.     Ñ    When using an object-type result of a method function call as the
  125.         target of a WITH statement, incorrect code was generated. For
  126.         example:
  127.         
  128.             WITH MethodFunc(args) DO
  129.                 ResultsMethod(moreArgs);
  130.                 
  131.         The result of MethodFunc was not properly removed from the stack
  132.         before pushing moreArgs and calling ResultsMethod. This error usually 
  133.         caused a bus error or method not found.
  134.         
  135.     Ñ    When indexing a multidimensional array whose aggregate size was >32K
  136.         with an immediate index, the wrong code would be generated if the
  137.         column offset was less than 32K into the column, but greater than 32K
  138.         into the array.
  139.         
  140.         Consider:
  141.         
  142.             TYPE    BigArray = array[1..7, 1..648] of Double;
  143.                     PBigArray = ^BigArray;
  144.                     
  145.             var
  146.                 pb : PBigArray;
  147.                 
  148.                 ...
  149.                 
  150.                 pb^[7, 209] := PI;    { 209 is within 32K of pb^[7], but    }
  151.                                     { greater than 32K away from pb^[1].}
  152.  
  153.     Ñ    Havoc would ensue if a program attempted to call LoadSeg on a 
  154.         segment which was already loaded and locked in memory. An example
  155.         of this behavior is the PreloadSegment routine found in 
  156.         MacApp versions later than 2.0b10.
  157.                 
  158.     Ñ    Occasionally, THINK Pascal would get confused and believe that the
  159.         Instant and Observe windows had been checked out from Projector 
  160.         read-only, which precluded typing anything into them.
  161.  
  162.  
  163. PROFILER UPDATE
  164. ===============
  165. The Profiler folder contains a replacement Profiler library and interface file.
  166. You should replace the Profiler that came with your THINK Pascal package with
  167. this version.
  168.                 
  169.  
  170. THINK CLASS LIBRARY UPDATE
  171. ==========================
  172. This update fixes some minor bugs in the THINK Class Library and
  173. in the demo programs for the TCL.
  174.  
  175. The TCL Update folder contains files that replace some of the files
  176. in the THINK Class Library. You should update only the versions on
  177. your disk, NOT the ones on your original THINK Pascal floppies.
  178.  
  179.  
  180. INSTALLING THE UPDATE
  181. ---------------------
  182.     ÑÑ    Please read these instructions before you begin.
  183.     
  184.     The TCL Update folder contains five folders that contain the
  185.     replacement files. To update, you just move the files from the
  186.     "New" folders to the corresponding folders already on your disk.
  187.     
  188.     1.    Drag the files from the "New Core Files" folder to the Core Files
  189.         folder in your THINK Class Library folder. If you followed the
  190.         installation instructions, this folder should be in your
  191.         THINK Pascal Folder.
  192.     
  193.     2.    Drag the files from the "New More Files" folder to the More Files
  194.         folder in your THINK Class Library folder.
  195.     
  196.     3.    Drag the files from the New Starter Files folder to the Starter Folder
  197.         in your TCL Demos folder.
  198.  
  199.     4.    Drag the files from the New Tiny Edit Files folder to the
  200.         TinyEdit Folder in your TCL Demos folder.
  201.  
  202.     5.    Drag the files from the New Art Class Files folder to the Art
  203.         Class Folder.
  204.  
  205. WHAT╒S IN THE UPDATE
  206. --------------------
  207. 1.    CBartender.p
  208.         ParseItemString now initializes cmdStr to nullStr.
  209.  
  210. 2.    CButton.p
  211.         IButton now adjusts hEncl and vEncl to account for its enclosure's
  212.         origin.
  213.  
  214. 3.    CEditText.p
  215.         Modified DoClick to fix activation problem with multiple EditText
  216.         fields within a pane.
  217.  
  218. 4.    CError.p
  219.         SevereMacError method:  the errMsg handle is now initialized properly.
  220.         MissingResources method:  now uses GetOSEvent to wait for mouseDown
  221.         or keyDown.
  222.  
  223. 5.    CPane.p
  224.         FrameToGlobalR method has been corrected.  (Warning:  this method
  225.         doesn't work if the window is not visible.)
  226.         
  227. 6.    CResFile.p
  228.         Open method now calls HOpenResFile instead of HOpenRF.
  229.         
  230. 7.    CWindow.p
  231.         FrameToGlobalR method has been corrected.  (Warning:  this method
  232.         doesn't work if the window is not visible.)
  233.         
  234. 8.    The TCL no longer passes object instance variables to the NEW procedure.
  235.     This used to cause problems with Heap Scramble on
  236.  
  237.         TCL files changed:
  238.             CApplication.p
  239.             CBitMapPane.p
  240.             CCharGrid.p
  241.             CClipboard.p
  242.             CDesktop.p
  243.             CDocument.p
  244.             CRadioGroup.p
  245.             CScrollPane.p
  246.             CFWDesktop.p
  247.             CTearOffMenu.p
  248.             CView.p
  249.             
  250.         TCL Demo files changed:
  251.             CStarterDoc.p
  252.             CEditDoc.p
  253.             CAboutBox.p
  254.             CArtClassApp.p
  255.             CArtClassDoc.p
  256.             CPaintPane.p
  257.             CPaintTask.p
  258.             CToolPens.p
  259.             CToolText.p